\chapter{Einleitung}

%\section{Benutzerprofile}
Bei {\bf Benutzerprofile} \engl{user profiles} handelt es sich um Benutzer charakterisierende Informationen. Sie dienen dazu, Benutzer zu verwalten, z.B. Vergabe von Rechten, Anbieten von individualen Informationen und Diesten usw.  Dieser Begriff stammen aus Verwaltungsinformationen von Betriebssystemen f"ur Multi-Benutzer.  Einher gehend von der Explosion von Internet sind Benutzerprofile weltweit f"ur Web-Anwendungen zum Einsatz gekommen, um die rasend angestiegende Web-Benutzer zu verwalten. Dabei wurde die Nutzung von Benutzerprofilen weiter entwickelt.
Zum Beispiel wird im Folgenden ein Modell \cite{HSD98} von Benutzerprofilen, das f"ur {\em elektronische Visitenkarten} \ab{VCard} zur Verf"ugung steht, vorgestellt.
\section{Modellierung von Benutzerprofilen}
Typischerweise werden die Attribute in einem Benutzerprofil der {\em vCard} inhaltlich in einzelne Abschnitte gegliedert und hierarchisch aufgebaut. Ein Benutzerprofil kann folgende Informationen enthalten:
\begin{enumerate}
\item Identifikator
\item digitale Zertifikat des Benutzers
\item demographische Informationen
\item Zahlungsinformation
\item Beziehungen (mit anderen Benutzern)
\item Bewertungen, Interessen, Qualifikationen, pers"onliche Pr"aferenzen
\item Transaktions-Historie (z.B. Benutzer-Aktionen  oder besuchte Web Seiten)
\end{enumerate}
In diesem Modell werden nicht nur  statische Informationen von Benutzer dargestellt, sonder auch dynamische Handlungsweisen von Benutzern. Die 4-te bzw. 7-te Attribute des Modells beschreibt die Aktionen, die von Benutzer online ausgef"uhrt werden.
\section{Kategorisieren von Benutzerprofilen}
 Zum Unterscheiden der statischen und dynamischen Informationen lassen sich Benutzerprofile in zwei Teile spalten,
\begin{itemize}
	\item Obvious Profiles \ab{OP}, die durch einmalige Eingaben festgehalten werden k"onnen, und
	\item None-Obvious Profiles \cite{ardissono} \ab{NOP}, die durch Interaktionen zwischen Benutzer und Software-Anwendungen notiert sind.
\end{itemize}
Ausgehend von dem obener"ahnten Beispiel-Modell reichen OPs f"ur die moderne Software-Anwendungen nicht mehr aus. Im Gegensatz spielen NOPs immer eine gr"ossere Rolle.
\section{None-Obvious Profile}
Bei {\bf None-Obvious Profiles}  handelt es sich um notierte Handlungsweisen von Benutzern. Diese notierte Handlungsweisen beschreiben nur, welche Aktionen von Benutzern ausgef"uhrt, und selbst haben keine Bedeutung. Sie m"ussen durch spezifische Verfahren analysiert werden, um dynamische Charakteristiken von Benutzer herauszuziehen. Damit lassen sich Benutzerprofile weiter entwickeln, um an moderne Software- und Web-Anwendungen anzupassen.

\section{Das Gugubarra-Projekt}
Das Gugubarra\footnote{Gugubarra ist der urspr"ungliche Namen (guuguubarra) von dem Kookaburra Vogel}-Projekt begann im Jahr 2004 und wurde von der Datenbank-Gruppe (DBIS) am Computer Science Institut der Johann Wolfgang Goethe-Universit"at Frankfurt durchgef"uhrt, um ein Instrument f"ur eine bessere Verwaltung der Community von registrierten Web-Benutzern aufzubauen. Das Gugubarra-Projekt bietet eine komplette L"osung zur Erfassung der Informationen von Handlungsweisen und zum Berechnen bzw. Analysiern von NOPs f"ur Web-Anwendungen.

\subsection{Teilprojekte des Gugubarra}
Das Gugubarra-Projekt besteht aus drei Teilprojekte, die die obenerw"ahnte Aufgaben erf"ullen. 
\begin{itemize}
	\item Designer
	\item NOP-Engine
	\item Clustering
\end{itemize}
Durch Designer werden die Handlungsweisen von Benutzern notiert und in einem gewissen Format abgespeichert. NOP-Engine benutzt diese wohlgeformte notierte Handlungsweisen, um NOPs zu berechnen. Die Ergebnisse von NOP-Engine sollen f"ur die weitere Bearbeitung und Analyse von Clustering zur Verf"ugung gestellt werden. Das Ziel dieser Arbeit ist eine Implementierung von NOP-Engine.  %Ausgehend von dieser Beschreibung wird  Imple
\subsection{Methodik zum Berechnen von NOPs}
Zum Brechnen von NOPs bietet das Gugubarra-Projekt auf der theoretischen Ebene eine Konkrete Methodik f"ur das NOP-Engine. Diese Methoditk beschreibt den Kern-Prozess der Kalkulation von NOPs mit einer Menge von mathematischen Formeln. Zur Implementierung von NOP-Engine ist eine Umwandlung dieser mathematischen Beschreibung in einem Algorithmus erforderlich.

\section{Aufgabenstellung}
Die Aufgaben dieser vorliegenden Arbeit werden in zwei Bereiche aufgeteilt. Zuallererst soll die dem Berechnen von NOPs zugrunde liegenden Methodik in einem Algorithmus mit einem anschaulichen Format "ubersetzen, und damit seine Komplexit"at analysieren. In dem zweiten Bereich der Aufgaben soll sich NOP-Engine als eine Web-Anwendung Implementeren lassen. Als Programmiersprache wurde die Sprache JAVA ausgew"ahlt, da sie im Bereich der Platformunabh"angigkeit und auch vor allem auf Grund ihres vermehrten Einsatzes in Web-Anwendungen sehr gute Referenzen hat. Der Implmentierung soll eine objektorientierte L"osung zum Berechnen von NOPs bieten. Dabei soll das Persistenz-Service \cite{hibernate} \kc{Hibernate} als Schnittstelle zur Datenbank zum Einsatz kommen, sowei das Framework \spring als Applikationsframework f"ur Web-Anwendungen, um weitestgehend modularisierte und einfach erweiterbare zukunftsorientiert Entwicklung zu f"ordern und zu gew"ahrleisten. Schlie"slich soll ein auf Web-Seiten basiertes Frontend f"ur NOP-Engine mit dem Web-Applikation Framework {\em Java Server Face} \ab{JSF} aufgebaut werden, um eine freundliche Benutzerschnittstelle zur Anwendung von NOP-Engine anzubieten. In Diesem Frontend soll nur die wesentliche Elemente zum Berechnen von NOPs dargetellt werden. Des Versch"onerung wird als ein neues Thema f"ur anderen Diplomanden zur Verf"ugung gestellt.

\section{Aufbau dieser Arbeit}
An diese Einleitung schlie"st sich ein einf"uhrendes Kapitel an, das sich mit dem grundlegenden Problem zum Verwalten von Web-Benutzern zu verstehen, und den Einsatz vom Gugubarra bzw. NOP-Engine behandelt. Die weitere Kapiteln dieser vorliegenden Arbeit werden wie folgt dargestellt:
\begin{itemize}
	\item {\bf Kapitel 2 } befasst sich die grundlegende Hintergrundinformationen sowie wichtige Konzepte, die Methodik und die offene Frage zu dem Thema des Berechnens von NOPs f"ur das Projekt "`NOP-Engine"'. 
	\item {\bf Kapitel 3 } stellt die "ubersetzte Algorithmus in Pseudocode bzw. die Analyse der Komplexit"at des Algorithmus vor.
	\item {\bf Kapitel 4 } beschreibt den Prozess mit Hilfe von der {{\em Cockburn}-Formatvorlage} und dem Anwendungsdiagramm zu dem Thema der Anforderungsanalyse von NOP-Eigine. 
	\item {\bf Kapitel 5 } befasst sich die Softwarearchitektur von NOP-Engine und dessen Aufbau mit der Programmierungssprache \kc{Java}bzw. den Klassendiagrammen und den Squenzdiagrammen. In diesem Kapitel werden einige Konzepte von \kc{Domain-driven design} angewendet zur strukturierung und Vertellung von Objekten in den verschiedenen Schichten der Architektur bzw. in den Pakten unter \kc{Java.}Dabei wird ein L"osungsvorschlag in Bezug auf die offene Frage von NOP-Engine angeboten.
	\item {\bf Kapitel 6} stellt die Implementierung von NOP-Engine sowie die Implementierungsphasen und Anwendung von \kc{Hibernate,}\kc{JSF}bzw. \kc{Spring}vor. Hierzu wird eine konkrete L"osung unter \kc{Java} f"ur die offene Frage von NOP-Engine zur Verf"ugung gestellt. Zu Ende dieses Kapitel wird eine Verteilungsdiagramm zur Verdeutlichung der Verteilungsstruktur von NOP-Engine dargestellt.
	\item {\bf Kapitel 7 } bescheibt die Teste, die bei der Implementierung parallel durchgef"uhrt werden, zum Verifizieren der Korrektheit des Algorithmus und Messen der Funktionalit"aten von NOP-Engine an die Anforderungen. In diesen Testen werden Modul- und Integrationsteste mit den modernen Test-Frameworks von {\em Java}, sowie \kc{JUnit,}\kc{JMock,} und dem {\em AOP}-Paket von \spring.
	\item {\bf Kapitel 8 } fasst die Ergebnisse der Arbeit zusammen, und zeigt mit einem
Ausblick auf, welche offenen Fragen und welche Ankn"upfungspunkte f"ur weitere
Forschungsarbeiten bestehen.
\end{itemize}

